#include<iostream>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<cstdio>
#include<string.h>
#include<stdlib.h>
#include<errno.h>

int main()
{
    printf("我是父进程,开始创建子进程\n");
    pid_t id = fork();
    if(id < 0)
    {
        printf("errno : %d, errstring: %s\n", errno, strerror(errno));
        return errno;
    }
    else if(id == 0)//子进程
    {
        int count = 5;
        while(count)
        {
            printf("子进程运行中,pid:%d\n", getpid());
            count--;
            sleep(1);   
        }
        exit(1);   
    }
    else//父进程
    {
        int status=0,count =10;
        pid_t rid = wait(&status);
        if(WIFEXITED(status))
        {
            printf("已经等到子进程正常结束,退出码是%d\n",WEXITSTATUS(status));
        }
        while(count)
        {
            printf("我是父进程: pid:%d\n", getpid());
            count--; 
            sleep(1);
        }
    }
    return 0;
}
